【已解决】Flask渲染模板

您所在的位置:网站首页 flask 模板渲染 【已解决】Flask渲染模板

【已解决】Flask渲染模板

#【已解决】Flask渲染模板| 来源: 网络整理| 查看: 265

本博文源于Flask基础,旨在讲解如何用Flask渲染网页模板

实验效果

在这里插入图片描述

核心思路

flask是利用了Jianjia2模板,只需要知道flask如何调用Jinjia2即可。Flask提拱的render_template函数把Jinjia2模板引擎集成到了程序中,render_template函数第一个参数是模板的文件名。随后的参数就是个键值对,表示模板中变量对应的键值对。这里使用一个例子。

核心代码

在项目中创建templates,文件夹结构如下 在这里插入图片描述 index.html如下

DOCTYPE html> hello Welcome to Flask

user.html如下:

DOCTYPE html> hello Hello,{{name}}

python核心代码如下

from flask import Flask,render_template app = Flask(__name__) # 视图函数 @app.route('/') def hello_world(): return render_template('index.html') @app.route('/user/') def show_user_profile(username): # 显示该用户名的用户信息 return render_template('user.html',name=username) if __name__ == '__main__': app.run(debug=True) Jinjia中的变量

刚才使用的变量{{name}},现在学习一下常用的字典取出值的变量

从字典中取一个值:{{mydict['key']}}. 从列表中取一个值:{{mylist[3]}}. 从列表中取一个带索引的值:{{ mylist[myinvar]}}. 从对象的方法中取一个值:{{myobj.somemethod()}}.

同样也可以用过滤器

Hello,{{name|capitalize}}

常用过滤器

名称说明safe渲染时不转义capitalize把值的首字母转换成大写,其他字母转换成小写lower把值转换成小写形式upper把值转换成大写形式title把值中每个单词的首字母都转换成大写trim把值的首尾空格去掉striptags渲染之前把值中所有的HTML标签都删掉safe渲染时不转义 控制结构

控制结构包括条件控制,循环控制

{% if user %} Hello, {{user}}! {% else %} Hello,Stranger! {% endif %}

循环结构

{% for comment in comments %} {{ comment }} {% endfor %} python中的函数 {% macro render_comment(comment)%} {{ comment }} {% endmacro %} {% for comment in comments %} {{ render_comment(comment)}} {% endfor %} 导入宏另存为宏

重复使用宏

{% import 'macros.html' as macros %} {% for comment in comments %} {{ macros.render_comment(comment)}} {% endfor %}`在这里插入代码片` {% include 'common.html'%} 模板继承 {% block head %} {%block title%}{% endblock %}-My Application {% block body %} {% endblock %}

衍生模板

{% extends "base.html"%} {% block title %}Index{%endblock %} {% block head %} {{super()}} {% endblock %} {%block body%} Hello,World {% endblock %} 总结

flask作为轻量级框架,挺不错的。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3